﻿using System.Collections.ObjectModel;

namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    [System.Xml.Serialization.XmlRootAttribute("valueComponents", Namespace = "http://www.opengis.net/gml", IsNullable = false)]
    public class ValueArrayPropertyType
    {
        private Collection<bool> _booleans = new Collection<bool>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Boolean")]
        public Collection<bool> Booleans 
        {
            get
            {
                return this._booleans;
            }
        }

        private Collection<CodeType> _categories = new Collection<CodeType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Category")]
        public Collection<CodeType> Categories 
        {
            get
            {
                return this._categories;
            }
        }

        private Collection<MeasureType> _quantities = new Collection<MeasureType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Quantity")]
        public Collection<MeasureType> Quantities 
        {
            get
            {
                return this._quantities;
            }
        }

        private Collection<string> _counts = new Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Count", DataType = "integer")]
        public Collection<string> Counts 
        {
            get
            {
                return this._counts;
            }
        }

        private Collection<string> _booleanLists = new Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("BooleanList")]
        public Collection<string> BooleanLists 
        {
            get
            {
                return this._booleanLists;
            }
        }

        private Collection<CodeOrNullListType> _categoryLists = new Collection<CodeOrNullListType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("CategoryList")]
        public Collection<CodeOrNullListType> CategoryLists 
        {
            get
            {
                return this._categoryLists;
            }
        }

        private Collection<MeasureOrNullListType> _quantityLists = new Collection<MeasureOrNullListType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("QuantityList")]
        public Collection<MeasureOrNullListType> QuantityLists 
        {
            get
            {
                return this._quantityLists;
            }
        }

        private Collection<string> _countLists = new Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("CountList")]
        public Collection<string> CountLists 
        {
            get
            {
                return this._countLists;
            }
        }

        private Collection<CategoryExtentType> _categoryExtents = new Collection<CategoryExtentType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("CategoryExtent")]
        public Collection<CategoryExtentType> CategoryExtents 
        {
            get
            {
                return this._categoryExtents;
            }
        }

        private Collection<QuantityExtentType> _quantityExtents = new Collection<QuantityExtentType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("QuantityExtent")]
        public Collection<QuantityExtentType> QuantityExtents 
        {
            get
            {
                return this._quantityExtents;
            }
        }

        private Collection<string> _countExtents = new Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("CountExtent")]
        public Collection<string> CountExtents 
        {
            get
            {
                return this._countExtents;
            }
        }

        private Collection<CompositeValueType> _compositeValues = new Collection<CompositeValueType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ValueArray", Type = typeof(ValueArrayType))]
        [System.Xml.Serialization.XmlElementAttribute("CompositeValue", Type = typeof(CompositeValueType))]
        public Collection<CompositeValueType> CompositeValues 
        {
            get
            {
                return this._compositeValues;
            }
        }

        private Collection<object> _dataItems = new Collection<object>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Style", Type = typeof(StyleType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("FeatureStyle", Type = typeof(FeatureStyleType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("GeometryStyle", Type = typeof(GeometryStyleType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("TopologyStyle", Type = typeof(TopologyStyleType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("LabelStyle", Type = typeof(LabelStyleType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("GraphStyle", Type = typeof(GraphStyleType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiGeometry", Type = typeof(MultiGeometryType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiPoint", Type = typeof(MultiPointType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiCurve", Type = typeof(MultiCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiSurface", Type = typeof(MultiSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("MultiSolid", Type = typeof(MultiSolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Point", Type = typeof(PointType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("LineString", Type = typeof(LineStringType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeCurve", Type = typeof(CompositeCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Curve", Type = typeof(CurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("OrientableCurve", Type = typeof(OrientableCurveType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Polygon", Type = typeof(PolygonType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("PolyhedralSurface", Type = typeof(PolyhedralSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Tin", Type = typeof(TinType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("TriangulatedSurface", Type = typeof(TriangulatedSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Surface", Type = typeof(SurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSolid", Type = typeof(CompositeSolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Solid", Type = typeof(SolidType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("LinearRing", Type = typeof(LinearRingType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Ring", Type = typeof(RingType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Bag", Type = typeof(BagType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Array", Type = typeof(ArrayType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("GenericMetaData", Type = typeof(GenericMetaDataType), IsNullable = false)]
        public Collection<object> DataItems 
        {
            get
            {
                return this._dataItems;
            }
        }

        private Collection<string> _nulls = new Collection<string>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Null")]
        public Collection<string> Nulls 
        {
            get
            {
                return this._nulls;
            }
        }
    }
}
